from longguo_ui.base.base import BasePage
from longguo_ui.config.locators import ReconciliationErrorPageLocators
import time

class ReconciliationPage(BasePage):
    """
    对账差错页面操作类，继承自基础页面类
    封装对账差错相关的页面操作，如查询对账差错列表等
    """

    def __init__(self, driver):
        """
        初始化对账差错页面实例

        :param driver: 浏览器驱动实例，用于页面交互
        """
        super().__init__(driver)

    def reconciliation_error_list(self):
        """
        执行对账差错列表查询流程
        步骤包括：打开对账管理菜单、进入对账差错列表、选择账单起止时间、执行查询
        """
        # 点击对账管理菜单（展开子菜单）
        self.click(ReconciliationErrorPageLocators.RECONCILIATION_MANAGEMENT)
        time.sleep(1)  # 等待菜单展开

        # 点击进入对账差错列表页面
        self.click(ReconciliationErrorPageLocators.RECONCILIATION_ERROR_LIST)
        time.sleep(1)  # 等待页面加载

        # 点击账单开始时间选择框
        self.click(ReconciliationErrorPageLocators.BILL_START_TIME)
        time.sleep(1)  # 等待日期选择器弹出

        # 确认账单开始时间（使用默认日期或已选择的日期）
        self.click(ReconciliationErrorPageLocators.CONFIRM)
        time.sleep(1)  # 等待开始时间选择完成

        # 点击账单结束时间选择框
        self.click(ReconciliationErrorPageLocators.BILL_END_TIME)
        time.sleep(1)  # 等待日期选择器弹出

        # 确认账单结束时间（使用默认日期或已选择的日期）
        self.click(ReconciliationErrorPageLocators.CONFIRMA)
        time.sleep(1)  # 等待结束时间选择完成

        # 点击查询按钮，获取对账差错数据
        self.click(ReconciliationErrorPageLocators.SEARCH)
        time.sleep(3)  # 等待查询结果加载完成